1. Field of the Invention
The invention relates to software configuration management. Specifically, the embodiments of the invention relate to the generation of a graphical representation of the dependencies between lists of changes to software components to facilitate the management of the development process for software.
2. Background
Software configuration management (SCM) systems and software are used during software development to facilitate the management of a product. Development of software often involves the creation of numerous software components or modules in the form of source or compiled code. These separate components may be developed by different individuals, groups or teams. Each software component may have dependencies on or interact with other software components. Further, each of the software components may change incrementally over the development process.
The SCM system provides a centralized mechanism for organizing the changes and dependencies between the changes to the various software components. The SCM system manages a repository of software components that compose a software project or program. Developers submit sets of updates to the software components to the SCM system which stores and logs the changes to the software components as change lists. The SCM system manages access or updating to software components to prevent software components from being accessed or changed by different developers at the same time or to ensure the coherency of the software components to be modified. Some SCM systems allow parallel changes and provide a merge tool to merge the parallel changes, resolve conflicts between changes and ensure the coherency of the changes to the software components.
The presentation of the data and dependencies related to change lists is tracked by the SCM and presented as a flat table or record format. The change list and associated software component data includes the ownership, version, dependencies and similar information. The SCM is used to find software components that are not completed or ready for the next stage of development. However, the process is slow because the data for each change list affecting a software component must be carefully reviewed to determine inconsistencies such as dependency loops between change lists and blocking change lists. The complex interdependencies in large software projects can cause this process to take days of review to analyze, because the review of the data is manual and the flat presentation is difficult to interpret.